Introduce an initial set of DevEx features#7
Closed
adamwg wants to merge 28 commits into
Closed
Conversation
This commit adds build infrastructure for the standalone CLI repository, with a stub cmd/crossplane. We'll add the existing crank code from crossplane in a subsequent commit. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
This is all copied from crossplane/crossplane and updated to remove the parts we don't need (e.g., pushing container images). Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
This commit contains the current `cmd/crank` from c/c and the supporting `internal/docker` package, with imports updated as necessary. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
The CLI's version will not be guaranteed to match a Crossplane version going forward, so we can't use the CLI's version number as the default image tag for render. Use the `stable` tag instead, so that we always use the latest stable Crossplane. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
We'll fill out more content in the README later, but bootstrap it for now. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
We don't actually have any fuzz tests yet, and this job relies on some configuration existing in the google oss-fuzz repository. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
ci: Remove the fuzz test job
Copy Crossplane's coderabbit config as a starting point and remove irrelevant parts. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
Historically, we've introduced new commands in the `crossplane alpha` or `crossplane beta` trees and moved them as they matured. This makes it awkward to introduce new commands in existing trees, since the tree gets split across maturity levels, and also breaks users when commands mature since their invocation changes. Move all the existing alpha and beta commands to the top level (or into the right tree, in the case of `crossplane render op`). Start indicating maturity using kong tags. Alpha and beta features are hidden from help by default but can be enabled by configuration and have a maturity indicator added to their help automatically. Make `crossplane render xr` the default subcommand for `crossplane render` so that existing render users are not broken by this change. Fixes crossplane/crossplane#7309 Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
Now that we have a config file, we need commands to manage it. Add basic `crossplane config view` and `crossplane config set` commands so we can view and update the config. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
This repository has additional maintainers beyond the @crossplane/crossplane-maintainers group. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
The protos in this repository are vendored from crossplane/crossplane, so no need to lint them or push them to the Buf schema registry. This avoids the need for a `BUF_TOKEN` secret in this repo. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
Add coderabbit config and clean up configuration
As proposed in the DevEx design doc, reorganize our command tree so that it's noun-centric. Leave `crossplane render` as an alias for `crossplane xr render` since that command is GA and we don't want to break any users/scripts. Allow alpha and beta commands to move without aliases. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
Show only the top-level nouns in the help. The user can use the `--help` flag on any of these commands to see the subcommands. This will help keep our help tidy and readable as we expand functionality. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
In keeping with how Crossplane handles pre-GA features, enable beta features by default (and have a config option to disable them), but leave alpha features disabled by default (with a config option to enable). Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
Reorganize the command tree and introduce config
Export the entire nixpkgs-unstable rather than just its go package so that our nix setup can use arbitrary packages from unstable as needed. Matches the change in crossplane/crossplane commit 744190edf. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
Upcoming developer experience changes require golang 1.26. Do the update separately and resolve new lint issues so that we don't mix the changes into the bigger DevEx PR. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
We use the function protobufs in the function we implement for injecting and extracting context during render. When this code lived in crossplane/crossplane it made sense to use the protobufs from there, but now that we're separate it would be better to use the versions in function-sdk-go like a normal function. This removes our dependency on crossplane/crossplane, which is nice. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
Update go to 1.26
Use function protobufs from function-sdk-go
The central concept in our developer experience is the Project. Introduce the Project API in preparation for adding the tooling. Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
This commit introduces the initial set of DevEx tools based around the concept of control plane Projects. Specifically, it introduces tools for: - Scaffolding a new, empty project. - Generating XRDs from example XRs or simpleschema documents. - Scaffolding compositions. - Scaffolding functions in go, go-templating, kcl, and python and adding them to composition pipelines. - Managing both runtime and build-time dependencies for a project, including generating language bindings (schemas) for added dependencies. - Building a project into a set of xpkgs. - Installing a project into a local control plane (created using kind) for testing. Fixes crossplane/crossplane#6840 Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
| const maxFileSize = 1024 * 1024 * 1024 | ||
|
|
||
| for { | ||
| header, err := tarReader.Next() |
5 tasks
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of your changes
This PR introduces the initial set of DevEx tools based around the concept of control plane Projects. Specifically, it introduces tools for:
Fixes crossplane/crossplane#6840
I have:
./nix.sh flake checkto ensure this PR is ready for review.- [ ] Addedbackport release-x.ylabels to auto-backport this PR.